/**
 * 全局常量定义
 * 用于统一管理系统中使用的各种枚举值、选项配置等
 * 好处：避免魔法数字/字符串，便于维护和国际化
 */

/**
 * 训练领域枚举映射
 * 用于将后端的英文字段转换为中文显示
 */
export const DOMAIN_MAP = {
  social: '社交能力',        // 社交互动、眼神交流等
  emotion: '情绪管理',       // 情绪识别、情绪调节等
  selfcare: '生活自理',      // 穿衣、洗漱、吃饭等
  communication: '沟通交流',  // 语言表达、理解能力等
  cognition: '认知能力',     // 认知、思维、记忆等
  motor: '行为干预'          // 刻板行为、问题行为干预等
}

/**
 * 难度等级映射
 * 根据孩子年龄和能力水平划分
 */
export const DIFFICULTY_MAP = {
  1: '基础（0-6岁）',  // 适合启蒙阶段
  2: '进阶（7-12岁）',  // 适合发展阶段
  3: '高阶（12岁+）'  // 适合强化阶段
}

/**
 * 计划类型映射
 * 用于区分不同的训练计划周期
 */
export const PLAN_TYPE_MAP = {
  daily: '每日计划',     // 每天重复的任务
  weekly: '每周计划',    // 每周安排的任务
  custom: '自定义计划'   // 灵活自定义的任务
}

/**
 * 任务状态映射
 * 用于标识任务的执行状态
 */
export const TASK_STATUS_MAP = {
  0: '待执行',  // 尚未开始
  1: '已完成',  // 已经完成
  2: '已取消'   // 取消执行
}

/**
 * 时间范围映射
 * 用于查询历史数据和能力曲线
 */
export const TIME_RANGE_MAP = {
  '1week': '近1周',      // 最近7天
  '1month': '近1个月',   // 最近30天
  '3months': '近3个月'   // 最近90天
}

/**
 * 训练频率选项
 * 用于下拉框选择训练频率
 */
export const FREQUENCY_OPTIONS = [
  { label: '每天', value: 'daily' },         // 每天训练
  { label: '每周3次', value: 'weekly_3' },   // 每周3次
  { label: '每周5次', value: 'weekly_5' },   // 每周5次
  { label: '自定义', value: 'custom' }       // 自定义频率
]

/**
 * 频率映射
 * 用于将后端值转换为中文显示
 */
export const FREQUENCY_MAP = {
  daily: '每天',
  weekly_3: '每周3次',
  weekly_5: '每周5次',
  custom: '自定义'
}

/**
 * 领域选项
 * 用于筛选器、表单等组件的选项
 */
export const DOMAIN_OPTIONS = [
  { label: '社交能力', value: 'social' },
  { label: '情绪管理', value: 'emotion' },
  { label: '生活自理', value: 'selfcare' },
  { label: '沟通交流', value: 'communication' },
  { label: '认知能力', value: 'cognition' },
  { label: '行为干预', value: 'motor' }
]

/**
 * 难度选项
 * 用于筛选器、表单等组件的选项
 */
export const DIFFICULTY_OPTIONS = [
  { label: '基础（0-6岁）', value: 1 },
  { label: '进阶（7-12岁）', value: 2 },
  { label: '高阶（12岁+）', value: 3 }
]

/**
 * 难度等级对应的年龄范围
 * 用于根据难度自动设置适用年龄
 */
export const DIFFICULTY_AGE_MAP = {
  1: { min: 0, max: 6 },    // 基础
  2: { min: 7, max: 12 },   // 进阶
  3: { min: 12, max: 18 }   // 高阶
}